Methods and systems for implementing a dynamic hierarchical data viewer

ABSTRACT

Methods, systems, and machine-readable mediums are disclosed for viewing multiply-dimensioned data. In one embodiment, a method is disclosed which comprises displaying multiply-dimensioned data in a table format, the table format having a plurality of rows, a plurality of columns, and a plurality of cells displaying data, a first column of the plurality of columns including data having at least two hierarchical levels. Data for at least a first set of the plurality of cells is displayed in a graphical format, the first set including cells in the first column, the graphical format of the cells in the first set in the first column indicating a hierarchical level associated with the cell data and a mechanism is displayed for a first one of the rows to display at least one additional row having data in the first column associated with a lower hierarchical level of the first row data.

PRIORITY CLAIM

This application is a continuation of U.S. patent application Ser. No.12/241,116, entitled METHODS AND SYSTEMS FOR IMPLEMENTING A DYNAMICHIERARCHICAL DATA VIEW, filed on Sep. 30, 2008, which is acontinuation-in-part of U.S. patent application Ser. No. 10/985,531,entitled DATA VIEWER, filed on Nov. 9, 2004, both of which areincorporated by reference in their entirety for any and all purposes,and priority is claimed thereto.

BACKGROUND OF THE INVENTION

Data may be displayed in any number of different ways. One traditionalapproach that has been used to display data is a tabular representation.In a tabular representation, data is displayed in a table format withrecords displayed as rows in the table and attributes of the recordsdisplayed as columns. The attribute values are displayed in a textualformat in cells (the intersection of a row and a column). With largedata sets, a user has to scroll through multiple pages to view all thedata. Additionally, this type of view does not facilitate rapid usercomprehension of the data set.

Another technique that has been used is to display data in a tableformat, but instead of displaying the data values as textual values, thedata is displayed as graphical bars. To get more detailed information,the user may specify a focus region to see the textual values of thedata. This technique may allow a user to view large amounts of data on asingle screen and more easily notice data trends with data sets havingtwo or more dimensions of data. However, this type of display does notprovide for the comprehension of hierarchical relationships inmultiply-dimensioned data having multiple hierarchical levels.

BRIEF SUMMARY OF THE INVENTION

Methods, systems, and machine readable mediums are disclosed for viewingmultiply-dimensioned data. In one embodiment, a method is disclosedwhich comprises displaying multiply-dimensioned data in a table format.The table format has a plurality of rows, a plurality of columns, and aplurality of cells displaying data. One column of the plurality ofcolumns includes data for at least two hierarchical levels. Data for atleast a first set of the plurality of cells is displayed in a graphicalformat. The first set includes cells in the first column and thegraphical format of the cells in the first column indicates ahierarchical level associated with the cell data. By way of example, thegraphical format may comprise graphical bars and the graphical bars maybe indented to indicate the hierarchical level of the data in the firstcolumn. The method also comprises displaying a mechanism for a first oneof the rows to display at least one additional row having data in thefirst column associated with a lower hierarchical level of the first rowdata.

The method may also comprise detecting an activation of the mechanismassociated with a first one of the rows. The first row has data in thefirst column at a first hierarchical level. One or more additional rowsare then displayed. The additional row(s) have data in the first columnat a lower hierarchical level than the first hierarchical level and thedata at the lower hierarchical level shares at least one data dimensionwith the data in the first cell data. In some embodiments, the one ormore additional rows are displayed in the graphical format and thegraphical format for data in the first column of the row(s) may indicatethe lower hierarchical level. A mechanism associated with the first rowmay also be displayed to remove the one or more additional rows from thedisplayed data. Optionally, the user may select to expand or collapseall hierarchical levels of the displayed data and the data may bere-displayed in accordance with the user selection.

In some instances, the method may also comprise displaying the data fora second set of the plurality of cells in a textual format. The secondset may include non-contiguous rows. Before the second set is displayedin the textual format, the second set may first be displayed in agraphical format. Upon detecting a selection of the second set, thetable may be re-displayed to display the second set in the textualformat. Alternately or additionally, the method may comprise detecting aselection of a row having data in the first set which is graphicallyrepresented. The data associated with the selected row may then bedisplayed in a textual format in a status line.

In other embodiments, the method may further comprise invoking aconfiguration interface having a plurality of configuration options fora user to change a configuration of the displayed data by either an enduser or administrator. After a selection is received from a user tochange a display mode configuration option, the data may be re-displayedin accordance with the selection. For example, one configuration optionmay be to display the data in the first set in the graphical format withtextual values. As another example, configuration option(s) may beprovided to set minimum/maximum threshold values for data. Data thatexceeds a maximum threshold value or is less than a minimum thresholdvalue may be displayed in a different format. Another configurationoption may be to display the data in a list format so that when data isresorted, the hierarchical relationships between the rows are notmaintained. Additional configuration options may be provided to change atop hierarchy level so that data above the top hierarchy level are notdisplayed, or only selected levels are displayed; to set the columnsthat are to be displayed; to display a number of descendents of a row;to change the graphical format (e.g., change the height or spacing ofgraphical bars); or to right justify the graphical data of a column.

Other variations of the method are also contemplated. By way of example,the method may further include receiving a sort column selection. Thedata at a first hierarchical level may be sorted in accordance with thesort column selection and the sorted data may be displayed to maintain adisplay of the hierarchical relationship between rows of data. Asanother example, the method may include receiving a selection of one ormore rows and re-displaying the table to include only the selected rows.Furthermore, the data may be sorted by children within parents first(i.e., bottom-up) or sorting with parents first (i.e., top-down).

In another embodiment, a method is disclosed which comprises displayingmultiply-dimensioned data in a table format. The table format has aplurality of rows, a plurality of columns, and a plurality of cellsdisplaying data. A first column of the plurality of columns includesdata for at least two hierarchical levels. The data for at least a firstset of the data is displayed in a graphical bar format. The graphicalbars in the first column are indented to indicate the hierarchical levelassociated with the data in the first column. A selection of a subset ofthe first set is detected and the data for the subset is re-displayed ina textual format. The method also comprises detecting a selection of arow in the first set and displaying the data associated with theselected row in a textual format in a status line. In addition, color,grayscale, or other graphical treatment may be used to indicatehierarchical level.

The methods may be also be embodied in computer systems. The computersystem may include a display, a processor, and memory communicativelycoupled with the processor. The memory may include instructions, which,when executed by the processor cause the processor to display data inaccordance with the embodiments described above. The computer system mayalso comprise data storage to store the data.

A further understanding of the nature and advantages of the presentinvention may be realized by reference to the remaining portions of thespecification and the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Illustrative embodiments in accordance with the invention areillustrated in the drawings in which:

FIG. 1 is a block diagram of an exemplary computer network systemenvironment in which a data viewer may be used.

FIG. 2 is a block diagram of a computer system upon which a data vieweror components of a data viewer may be implemented.

FIG. 3 illustrates an exemplary embodiment of a data viewer.

FIG. 4 illustrates an exemplary embodiment of a configuration interfacethat may be used to configure the display of data.

FIG. 5 illustrates a second exemplary display of data using a dataviewer.

FIG. 6 illustrates a third exemplary display of data using a dataviewer.

FIG. 7 illustrates a fourth exemplary display of data using a dataviewer.

FIG. 8 is a flow diagram illustrating an exemplary method of using adata viewer to display data.

FIG. 9 is a flow diagram illustrating an exemplary method that may beused to configure a data viewer.

FIG. 10 is a flow diagram illustrating a method of graphicallydisplaying aggregated hierarchical parent-child data, according to oneembodiment of the present invention.

FIG. 11 is a flow diagram illustrating a method of graphicallydisplaying aggregated hierarchical parent-child data, according toanother embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however, toone skilled in the art that the present invention may be practicedwithout some of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form.

FIG. 1 illustrates a block diagram of a system environment that may inwhich a data viewer may be used. The system 100 includes one or moreuser computers 105, 110, and 115. The user computers 105, 110, and 115can be general purpose personal computers (including, merely by way ofexample, personal computers and/or laptop computers running variousversions of Microsoft Corp.'s Windows™ and/or Apple Corp.'s Macintosh™operating systems) and/or workstation computers running any of a varietyof commercially-available UNIX™ or UNIX-like operating systems. Theseuser computers 105, 110, 115 may also have any of a variety ofapplications, including for example, database client and/or serverapplications, and web browser applications. Alternatively, the usercomputers 105, 110, and 115 may be any other electronic device, such asa thin-client computer, Internet-enabled mobile telephone, and/orpersonal digital assistant, capable of communicating via a network(e.g., the network 120 described below) and/or displaying and navigatingweb pages or other types of electronic documents. Although the exemplarysystem 100 is shown with three user computers, any number of usercomputers may be supported.

In some embodiments, the system 100 may also include a network 120. Thenetwork may be any type of network familiar to those skilled in the artthat can support data communications using any of a variety ofcommercially-available protocols, including without limitation TCP/IP,SNA, IPX, AppleTalk, and the like. Merely by way of example, the network120 may be a local area network (“LAN”), such as an Ethernet network, aFiber Channel network, a Token-Ring network and/or the like; a wide-areanetwork; a virtual network, including without limitation a virtualprivate network (“VPN”); the Internet; an intranet; an extranet; apublic switched telephone network (“PSTN”); an infra-red network; awireless network (e.g., a network operating under any of the IEEE 802.11suite of protocols, the Bluetooth™ protocol known in the art, and/or anyother wireless protocol); and/or any combination of these and/or othernetworks.

The system may also include one or more server computers 125, 130. Oneserver may be a web server 125, which may be used to process requestsfor web pages or other electronic documents from user computers 105,110, and 120. The web server can be running an operating systemincluding any of those discussed above, as well as anycommercially-available server operating systems. The web server 125 canalso run a variety of server applications, including HTTP servers, FTPservers, CGI servers, database servers, Java servers, and the like.

The system 100 may also include one or more file and or/applicationservers 130, which can, in addition to an operating system, include oneor more applications accessible by a client running on one or more ofthe user computers 105, 110, 115. The server(s) 130 may be one or moregeneral purpose computers capable of executing programs or scripts inresponse to the user computers 105, 110 and 115. As one example, theserver(s) 130 may execute one or more web applications. The webapplication may be implemented as one or more scripts or programswritten in any programming language, such as Java™, C, C#™ or C++,and/or any scripting language, such as Perl, Python, or TCL, as well ascombinations of any programming/scripting languages. The applicationserver(s) 130 may also include database servers, including withoutlimitation those commercially available from Oracle, Microsoft, Sybase™,IBM™ and the like, which can process requests from database clientsrunning on a user computer 105, 110, 115.

In some embodiments, an application server 130 may create web pagesdynamically for displaying user data. The web pages created by the webapplication server 130 may be forwarded to a user computer 105 via a webserver 125. Similarly, the web server 125 can receive web page requestsand/or input data from a user computer 105 and can forward the web pagerequests and/or input data to the web application server 130. Inalternate embodiments, application server 130 may implement a GraphicalUser Interface (GUI), other than a web application, to display data.

In further embodiments, the server 130 may function as a file server.Although for ease of description, FIG. 1 illustrates a separate webserver 125 and file/application server 130, those skilled in the artwill recognize that the functions described with respect to servers 125,130 may be performed by a single server and/or a plurality ofspecialized servers, depending on implementation-specific needs andparameters.

The system 100 may also include a database 135. The database 135 mayreside in a variety of locations. By way of example, database 135 mayreside on a storage medium local to (and/or resident in) one or more ofthe computers 105, 110, 115, 125, 130. Alternatively, database 135 maybe remote from any or all of the computers 105, 110, 115, 125, 130, andin communication (e.g., via the network 120) with one or more of these.In a particular set of embodiments, the database 135 may reside in astorage-area network (“SAN”) familiar to those skilled in the art.Similarly, any necessary files for performing the functions attributedto the computers 105, 110, 115, 125, 130 may be stored locally on therespective computer and/or remotely, as appropriate. In one set ofembodiments, the database 135 may be a relational database, such asOracle 10g™, that is adapted to store, update, and retrieve data inresponse to SQL-formatted commands.

FIG. 2 illustrates one embodiment of a computer system 200 upon which adata viewer or components of a data viewer may be implemented. Thecomputer system 200 is shown comprising hardware elements that may beelectrically coupled via a bus 255. The hardware elements may includeone or more central processing units (CPUs) 205; one or more inputdevices 210 (e.g., a mouse, a keyboard, etc.); and one or more outputdevices 215 (e.g., a display device, a printer, etc.). The computersystem 200 may also include one or more storage device 220. By way ofexample, storage device(s) 220 may be disk drives, optical storagedevices, solid-state storage device such as a random access memory(“RAM”) and/or a read-only memory (“ROM”), which can be programmable,flash-updateable and/or the like.

The computer system 200 may additionally include a computer-readablestorage media reader 225; a communications system 230 (e.g., a modem, awireless or wired network card, an infra-red communication device,etc.); and working memory 240, which may include RAM and ROM devices asdescribed above. In some embodiments, the computer system 200 may alsoinclude a processing acceleration unit 235, which can include a DSP, aspecial-purpose processor and/or the like.

The computer-readable storage media reader 225 can further be connectedto a computer-readable storage medium, together (and, optionally, incombination with storage device(s) 220) comprehensively representingremote, local, fixed, and/or removable storage devices plus storagemedia for temporarily and/or more permanently containingcomputer-readable information. The communications system 230 may permitdata to be exchanged with a network and/or any other computer.

The computer system 200 may also comprise software elements, shown asbeing currently located within a working memory 240, including anoperating system 245 and/or other code 250, such as an applicationprogram. It should be appreciated that alternate embodiments of acomputer system 200 may have numerous variations from that describedabove. For example, customized hardware might also be used and/orparticular elements might be implemented in hardware, software(including portable software, such as applets), or both. Further,connection to other computing devices such as network input/outputdevices may be employed.

FIGS. 3-7 illustrate different exemplary data views that may be providedby a data viewer. For purposes of illustration, these figures illustratea particular example of a type of data that may be displayed, that ofdata related to website performance. It should be appreciated that theillustrations are exemplary in nature and that data viewers may be usedto view a wide variety of other types of data.

An exemplary embodiment of a data viewer that may be used to viewmultiply-dimensioned data is illustrated in FIG. 3. The data viewer 300displays data in a table format. Attributes of data are displayed ascolumns 302, 304, 306, 308 and rows 320, 322 display related data. Atthe intersections of rows and columns are cells for displaying datavalues. In alternate embodiments, the related data may be displayed incolumns, while attributes may be displayed in rows.

One of the columns 302 may be used to display data having multiplehierarchical levels having at least one data dimension in common. Asillustrated in FIG. 3, column 302 is used to display web targets. Someof the web targets (parent) may have descendent targets. For instance, awebsite may consist of multiple pages and/or applications that each hasits own associated data. Data for the entire website is at a higherhierarchical level than the data for the underlying pages/applications.One or more of the underlying pages may also have descendants. Anotherexample of hierarchical data that could be displayed in a column 302 ofa data viewer is product categories that have different hierarchicallevels. A product category of writing instrument may have descendentcategories of pencils, markers, pens (which may have descendants ofballpoint, roller ball, etc.). Numerous other examples of hierarchicaldata may also be displayed in a column 302 of the table.

In one view, the hierarchical data may be collapsed as shown in FIG. 3.When the hierarchy levels are collapsed, data is only displayed for atop hierarchy level (which may be configured as described below). Thus,in FIG. 3, data is displayed for each web target at the top hierarchylevel. The displayed data includes the availability of web targets(displayed in column 304), the average response time of web targets(displayed in column 306), the slowest response time of web targets(displayed in column 308), and the status of the web targets (displayedin column 310).

Data for a first plurality of rows 320 is displayed in a graphicalformat. By way of example, the graphical format may comprise graphicalbars. The graphical bars may take up less vertical screen area thantextual data and may thus provide for the display of larger amounts ofdata on a single screen. Numerical data (e.g., availability 304, averageresponse time 306, slowest response time 308) may be displayed so thatthe length of the bar indicates a larger number. Graphical bars (orother type of graphical format) may also be used for attributes having apre-defined number of allowable values (yes/no, available/offline,etc.). For example, the status 310 of the website target may bedisplayed as graphical bars with an available status equated to a firstnumerical value (with a first bar length) and an offline status equatedto a second numerical value (with a second bar length). Alternately,graphical bars may be indented to indicate different allowable values.Character data may also be displayed in graphical format to indicateinformation, such as the starting letter of the character data. This maybe accomplished in any number of ways. For instance, the length of agraphical bar may indicate the position in the alphabet of the startingcharacter or graphical bars may be indented to indicate the position inthe alphabet of the starting character.

Hierarchical data may also be displayed in graphical format to indicatethe hierarchical position of the cell data. In one embodiment, graphicalbars may be used to display hierarchical level information. As will beillustrated in later figures, the hierarchical level of the data may beindicated by indenting the graphical bars for lower hierarchical levels.Alternately, the hierarchy level may be indicated by a length of thegraphical bar. In FIG. 3, none of the graphical bars in column 302 areindented, which indicates all of the displayed data is for the tophierarchy level. In other embodiments, the hierarchy level may beindicated by a length of a graphical bar or other type of graphicalformat, such as color or thickness.

As illustrated by row 322, a second set of the data may be displayed intextual format. A user may select which data to display in the textualformat. By way of example, the user may “single-click”, “double-click”,“right-click” or use another mechanism to indicate which rows of datashould be displayed in textual format. The rows of data may or may notbe contiguous to each other. The user may also be able to select todisplay one or more columns or one or more individual cells in textualformat. The display of data in the textual format may cause the size ofthe cell(s) displayed in textual format to increase in order to displaythe text in a readable size. In some embodiments, in addition to thetextual values, the graphical format may also be displayed (e.g.,above/below/right/left of textual values or textual value may bedisplayed inside the graphical format).

A user may also be able to select to display the data for a row 324 in astatus line 326. For instance, a user may position a cursor(“roll-over”) on a row of data, which may cause the data viewer 300 todisplay the textual values of the data in status line 326. Within thetable, the data may continue to be displayed in graphical format. Thestatus line 326 could, in other embodiments, appear within the displayedtable of data, at the bottom of the displayed data, or in anotherlocation. Furthermore, a row, upon selection or rollover, may beexpanded in place as a “bubble” or distortion view.

As will be described in more detail with reference to FIG. 6, a user maybe able to choose to limit the data displayed in the table to one ormore selected rows. Thus, a filtering mechanism may be provided for theuser to select which rows should be displayed. In one embodiment, theuser may select rows by checking boxes in a column 330 and then clickingon a button 332 to display only the checked rows. Other mechanisms mayalso be used for the user to select which rows to display in the table.

Data viewer 300 may also provide the ability for a user to sort the databy a sort column 306. An indicator 340 may be displayed to show thecurrent sort column. In some instances, indicator 340 may also indicatewhether the data is sorted in ascending (e.g., up arrow indicator) ordescending order (e.g., down arrow indicator). The sort column may beselected by “single-clicking” or “double-clicking” on a column header orby another mechanism. The sort order may be switched from ascending todescending (or vice versa) by selecting the sort column a second time.Data may be sorted to maintain the display of the hierarchicalrelationships of rows of data, so that hierarchical relationships may beeasily viewed. Thus, the data may first be sorted at the highesthierarchical level. Data associated with lower hierarchical levels(descendent data) may then be sorted within their respective parent datacategory. In some embodiments, a secondary sorting capability may beprovided in which additional columns may also be selected to sort rowsby the selected additional columns.

Other functionality may also be provided by data viewer 300. As oneexample, a mechanism 350 may be provided for the user to expand thehierarchy to display data at all hierarchical levels associated withcolumn 302. Another mechanism 352 may be provided for the user tocollapse all hierarchical levels and only display data at the tophierarchical level. A mechanism 360 (e.g., a button) may also beprovided to reset the table to a default format. As will be described infurther detail below with reference to FIG. 4, a mechanism 370 may alsobe provided for the user to configure the display. The user may activatemechanism 350, 352, 360, 370 by clicking, double-clicking, or any otherappropriate method. It should be appreciated that in other embodiments,a data viewer 300 may not include all of the functionality describedabove and/or may include additional functionality.

FIG. 4 illustrates an exemplary configuration interface 400, such as awindow or menu, which may be invoked to allow the user to configure datadisplay options. The configuration interface 400 may include one or moreoptions 402, 404, and 406 to configure a display mode of the dataviewer. By way of example, a first option 404 may be provided for theuser to display data in graphical format, graphical format with textualvalues, or only textual values. Option 406 may allow the user toconfigure the data viewer to display the data in the hierarchicalrelationships or in a list format. If data is displayed in thehierarchical format, rows are displayed in accordance with theirhierarchical levels and relationships. Thus, descendants are displayedconsecutively with their parent rows (e.g., descendants of rows aredisplayed immediately following the parent row). The hierarchicalrelationships are maintained when the data is sorted. If the data isdisplayed in list format, the hierarchical relationships between rowsare not maintained and data is displayed/sorted as if the hierarchylevels did not exist.

The configuration interface 400 may also provide an option for the userto configure the top hierarchy level 408 to display. Thus, the user mayselect to view only data at the top hierarchy level and below. Data athierarchical levels above the selected top hierarchy level 408 is notdisplayed. In other embodiments, the user may select specifichierarchical levels to display or the user may select to view only dataat a bottom hierarchy level and above.

One or more option(s) may also be provided in configuration interface400 to configure display preferences. As one example, the configurationinterface may include an area 410 to configure the display of the dataattributes. Area 410 may include the column (attribute) names 412available for display. For each of the columns, the user may use anindicator, such as a checkbox or other suitable mechanism, to indicatewhether to display 414 the attribute. Checkboxes or other mechanisms mayalso be provided to configure or change the justification 416 of one ormore columns (e.g., set the justification as right justify). Thejustification option 416 may override a default justification (e.g.,left justify). As will be illustrated with reference to FIG. 7,relationships between two attributes may be more easily perceived bydisplaying the attributes with opposite justification. In a furtherembodiment, options for setting min 418 and max 420 are presented.

Additional options may also be provided to configure threshold valuesfor one or more attributes. By way of example, options 422 may beprovided for one or more of the attributes to configure a minimumthreshold value. Data values that are below the minimum threshold may bedisplayed in a different format, such as a different color, highlighted,or otherwise visually convey that the data values fall below the minimumthreshold value. Similarly, options may be provided for one or more ofthe attributes to configure a maximum threshold value and values abovethe maximum threshold value may be displayed in a different format tovisually convey the data value exceeds the configured maximum thresholdvalue. In some embodiments, an option 422 may be provided to reset thethreshold values to default values.

Configuration interface 400 may also include one or more option(s) todisplay descendent information as attribute(s). FIG. 4 illustrates twopossible options 424, 426 that may be provided to display descendentinformation as attributes. Child data is data at a hierarchical leveldirectly below the hierarchical level of the parent data. The displayoptions of the descendent attributes 424, 426 may also be configurablesimilar to other attributes. Although FIG. 4 illustrates an embodimentin which threshold values are not configurable for the descendentattributes 424, 426, alternate embodiments are contemplated in whichthreshold values may be configured.

Configuration interface 400 may further include options to configure thedisplay of graphical values 430. By way of example, in embodiments inwhich the graphical values are displayed as graphical bars, a firstconfiguration option 432 may be provided to configure the height of thegraphical bars. An additional option 434 may also be provided toconfigure the spacing between the graphical bars. In other embodiments,configuration interface 400 may include options to change the format ofthe graphical display and/or appropriately configure different types ofgraphical formats.

As previously described, threshold values may be configured for one ormore attributes. An area may be provided to configure the format of datathat is below minimum threshold values or above maximum thresholdvalues. In one embodiment, area 440 may be used to configure the colorto display values outside the threshold parameters. A first option 442may be provided to select the color to display values below minimumthresholds and a second option 444 may be provided to select the colorto display values above maximum thresholds. Alternately, the colorpreferences 442, 444 may be set differently for each attribute. Inalternate embodiments, configuration interface 400 may provide othertypes of formatting choices, such as highlighting or blinking, todisplay values outside thresholds. Additionally, in some embodiments,threshold values may be set for specific rows and/or hierarchy levels.In these cases, the threshold settings for rows may supersede thosespecified for a column in those intersecting data elements defined by arow and column.

Configuration interface 400 further provides a configuration option 452to configure the display length of character data when the displaylength is in non-graphical format. In the exemplary embodiment of webperformance data, the character data is limited to the “target”attribute but, in alternate embodiments, additional attributes may alsobe character data. A user may be able to select from a drop-down list orother mechanism to display the character data full length, or otherlengths, such as 5, 10, or 15 characters. The chosen option may changethe displayed width of columns associated with character data. Byconfiguring the display length of character data, users may decidebetween seeing more detailed information (full character name) at theexpense of more screen space (possibly necessitating scrolling) or lessdetailed information with less screen space taken up by the characterdata.

After a user has completed use of the configuration interface 400, amechanism 460 (e.g., an “OK” button) may be provided to apply all thechanges made, close the configuration interface, and re-display the datausing the selected configuration options. A second mechanism 462 (e.g.,an “Apply” button) may be provided to apply the changes made, butcontinue the display of configuration interface 400 for potentialadditional changes. A third mechanism 464 (e.g., a “Cancel” button) maybe provided to undo any configuration changes made, close theconfiguration interface 400, and return to the previous display of data.

It should be appreciated that in alternate embodiments, configurationinterface 400 may include fewer, additional, or different options thanthose discussed with reference to FIG. 4. As one example, options may beprovided in configuration interface 400 or a separate configurationinterface to configure hierarchy levels and/or the hierarchy column.Other option(s) may be provided to format or configure the graphicaldisplay of data. By way of example, a user may be able to select whetherto display the hierarchical values and/or character data in graphicalformat by indenting or by changing the length of a graphical bar. Otherconfiguration options to configure the display and formatting of dataare also contemplated.

FIG. 5 illustrates another view 500 of data that may be displayed usinga data viewer. In this view, the hierarchical levels have been expandedfor row 502 having a target attribute “My Bike Shop”. Thus, dataassociated with lower hierarchical levels of the hierarchical column“Target” 510 are displayed in rows 504. Each of the displayed rows 504is at one hierarchical level below “My Bike Shop”, as can be seen by theindented position of the graphical display of the data values for thetarget attribute in these rows 504.

Descendent information is displayed as attributes in columns 512, 514.Column 512 displays the number of children (direct descendents that areat one hierarchical level below the associated row data) and column 514displays the total number of descendents. “My Bike Shop” displayed inrow 502 has 14 children (displayed in rows 504) and 28 totaldescendents. As can be appreciated, one or more of the target datavalues in rows 504 also has descendents.

A mechanism 508 is displayed to provide the user the ability to collapsethe display of the hierarchical data, so that descendent rows 504 of row502 are not displayed. Mechanism 508 may also indicate (e.g., by a minussign) row 502 has been expanded to display descendent rows 506. Ifmechanism 508 is activated to collapse the display of hierarchical data,the display of mechanism may change to indicate that descendent dataexists (e.g., changed to a plus sign) and mechanism 508 may then be usedto expand the data to display the descendents 504. In the illustratedembodiment, mechanisms are not displayed to indicate whether a row hasdescendent data when the data is displayed in graphical format (ascurrently illustrated by rows 504). Mechanisms, such as mechanism 508,are displayed when the data is in textual format (row 502). A mechanismis not displayed for row 506 (associated with target attribute value“App3”) as row 506 has no descendents. This may provide for theconservation of screen space. However, alternate embodiments may displayor otherwise indicate which rows have descendent data when the data isin graphical format. Additionally, in some embodiments, the expansion ofa row of data to display data at lower hierarchy levels may result inthe expansion of all descendents, not just child descendents.

The data displayed in data viewer 500 is currently being sorted indescending order by the average response time attribute 516 as indicatedby an indicator 520 (e.g., down arrow) displayed in the header of column516. Data is sorted according to hierarchical levels. First, the data atthe top hierarchy level is sorted by the sort column 516. Descendentdata at hierarchy levels below the top hierarchy level are then sortedwithin their respective parent hierarchy level. Thus, the display of thehierarchical relationships between rows of data is maintained. In FIG.5, all data rows at the top target hierarchy level, including 502, 506are sorted by the average response time 516. Rows 504 are sorted byaverage response time 516 within their parent target of “My Bike Shop”associated with row 502. Optionally, a second column header could beselected as a secondary sort key, which would specify sorting in case ofties on the preceding sort.

FIG. 6 illustrates a filtered view 600 of data that may be displayedusing a data viewer. Displayed data is limited to rows 610. Rows 610 mayhave been selected for display by a user by using a mechanism, such as acheckbox, to indicate the selected rows and then using anothermechanism, such as button 602 to select to display only the checkedrows. Other suitable mechanisms may also be used to indicate which datashould be displayed in the filtered view 600. A mechanism, such asbutton 630, may also be provided to reset the displayed data to includethe data excluded by the filtered view 600.

The selected data 610 includes the data associated with target “My BikeShop” (row 612) and two rows 612, 614 having descendent data. A minussign 622 is displayed to indicate the data associated with row 612(target “My Bike Shop”) has descendent data associated with it and thatthe data display is currently expanded to display the descendent data.By clicking on the minus sign 622, the user may collapse the display ofthe descendent data associated with “My Bike Shop”. Similarly, a plussign 624 is displayed to indicate the data associated with row 614(target “Storefront Page”, which is a child of “My Bike Shop”) hasassociated descendent data and that the descendent data is not currentlydisplayed. A user may click on the plus sign 624 to expand the displayeddata to include the descendent data. It should be appreciated thatalternate mechanisms may also be used to expand/collapse the display ofdescendent data and/or to indicate whether the descendent data iscurrently displayed.

FIG. 7 illustrates another view 700 of data that may be displayed usinga data viewer. View 700 includes a column 702 displaying values for theaverage response time attribute for a plurality of rows of associateddata 710. A second column 704 is used to display the slowest responsetime attribute values. The average response time 702 values are rightjustified and the slowest response time values displayed in column 704are left justified.

For the data displayed as graphical bars, the reverse justification ofcolumns 702, 704 may produce a tree effect for the data values. Thistype of display may facilitate the perception of relationships betweenthe data values of these columns. In the example data of FIG. 7, thereverse justification may have assisted a user to see that a highaverage response time (values in column 702) is generally correlated toa high slowest response time (values in column 704) and vice versa. Itshould be appreciated that additional columns may also displayed, someof which may also be displayed using reverse justification.

FIG. 8 illustrates an exemplary method of interacting with a data viewerto display data. The method may begin by displaying 802multiply-dimensioned data having multiple hierarchy levels. The datavalues may be displayed in a table format having a plurality of rows fordisplaying associated data (e.g., a data record), a plurality of columnsfor displaying data attributes, and a plurality of cells for displayingthe data values. At least a portion of the data values are displayed ina graphical format (e.g., graphical bars). One of the columns mayinclude data having at least two hierarchical levels. The graphicalformat of the data in this column may indicate the hierarchy level ofthe data value (e.g., by indenting graphical bars or increasing thelength of graphical bars to indicate a lower hierarchy level). In someembodiments, when the data is initially displayed 802, the display maybe limited to the data rows having values in the hierarchical column ata top hierarchy level.

The selection of a row of data may be detected 804. A user may haveselected a row by “clicking” on a row of data. One or more of theattribute values for the data may be displayed in graphical format. Upondetection 804 of the data selection, the data values may be displayed806 in a status line in textual format.

The method may also include the detection 808 of a focus area selection(e.g., by detecting a “roll-over” or other mechanism activated by a userto select a focus area). The data selected for focus may have beendisplayed 802 in graphical format. Upon detection 808 of the focus areaselection, the data associated with the selected focus area may bere-displayed 810 in textual format. In some instances, the size of thecell or row displaying the data values may increase to accommodate thedisplay of the textual data in a readable size. In other embodiments,this displayed row may appear at the bottom of or floating over thedisplayed graphical table image. Thus, in some cases, the entire tableimage or other portions of the table image may need to be re-displayed.

One or more of the rows of data selected in the focus area may haveassociated descendent data (data at a lower hierarchy level than thevalue in the row's hierarchical column that shares at least one commondata dimension with the value). A mechanism 812 may be displayed foreach of these rows to allow a user to view the descendent data.Alternately, mechanism(s) may be displayed for all rows havingdescendent data, regardless of whether the data in the row is displayedin textual or graphical format.

An activation of one of the mechanisms of the rows is detected 814. Theadditional descendent data associated with the row having the activatedmechanism is displayed 816. By way of example, the descendent data rowsmay be displayed as rows immediately below the parent data row. In someembodiments, the activation of the mechanism may result in only thedisplay of child data rows (e.g., data at a hierarchical levelimmediately below the parent data). The mechanism associated with theparent row may be changed to display 818 a mechanism to collapse thedisplay and remove the descendent rows of data from the displayed data.

The method may further include the detection 820 of the activation of anexpand all hierarchy levels mechanism. This may result in the display822 of all additional rows of data at all hierarchy levels. Theseadditional rows may be displayed 822 immediately following the parentrows to indicate the hierarchical relationships between the rows. By wayof example, the descendent data may be displayed 822 as indentedgraphical bars or other symbols, the indented position indicating thehierarchical level of the descendent data.

It should be appreciated that in alternate embodiments, a great numberof variations may be made to the exemplary method described above. Forinstance, the method may not include all of the illustrated blocks orthe blocks may be performed in a different order. As another example,additional or different interactions may occur that use the same oradditional functionality provided by a data viewer.

FIG. 9 illustrates an exemplary method that may be used to configure adata viewer. The method may begin by invoking 902 a configurationinterface. The invocation 902 of the configuration interface may be inresponse to a user request to configure the display of the data. Theconfiguration interface includes a plurality of configuration options tochange the manner in which data in the data viewer is displayed.

Selection(s) may then be received to change one or more of theconfiguration options. One of the received changes may be to change 904a display mode configuration option. By way of example, the display modeconfiguration selection may be to display the data previously displayedin the graphical format in a graphical format with textual values (e.g.,displaying textual values above/below, left/right, or within graphicalformat). Another configuration option may be received to set 906 the tophierarchy level for the displayed data. This option may result in thedisplay of data including only the data at hierarchical levels at orbelow the configured top hierarchy level. In other embodiments,configuration options may allow the user to set specific hierarchylevels for display, or may allow display of data at a specified orhigher level of hierarchy.

The method may also include receiving configuration option(s) selecting908 the columns (data attributes) to be displayed in the data viewer.Thus, columns associated with data attributes may be added or removedfrom the display according to the preferences of the user. In someinstances, the user may also select 908 to display columns indicating anumber of children and/or descendents of data. Format options (e.g.,justification) for columns may also be selected 910 using theconfiguration interface.

Additional configuration options may be received to set 912 thresholdvalues for data. Maximum and/or minimum threshold values may be set 912for one or more of the attributes. Data that exceeds maximum thresholdvalues or is less than minimum threshold values may be displayed in adifferent format to indicate the data is outside a threshold value. Inone embodiment, the data may be displayed in a different color. Thus, aconfiguration option may be received to set 914 the color(s) to displaydata that falls outside threshold values. In alternate embodiments,different or additional formatting options may be set to display valuesoutside threshold parameters.

Graphic display option(s) may also be set 916. For instance, graphicdisplay option(s) may be set to indicate a graphical format to use todisplay graphical values. In some embodiments, the graphical format maybe horizontal graphical bars. In these embodiments, graphical displayoption(s) may be set to change the vertical height and/or spacing of thegraphical bars. Thus, the user may decide whether to display largeramounts of data (using smaller vertical heights and spacing) or todisplay less data that may possibly be more comprehensible to a user,but may necessitate scrolling to view all data.

Additional configuration option(s) may also be set 918, such asoption(s) previously described with reference to FIG. 4. The data maythen be re-displayed 920 in accordance with the configuration optionsselected 904-918.

Turning now to FIG. 10 which illustrates a method of graphicallydisplaying aggregated hierarchical parent-child data, according to oneembodiment of the present invention. At process block 1002,multiply-dimensioned data may be displayed in a table (or data viewer)which includes multiple cells. In one embodiment, the table may bedisplayed on a graphical display device (e.g., a CRT monitor, atelevision, an LCD screen, a Plasma screen, etc.). Each cell within thetable may be filled with data in any format. For example, the data maybe textual, graphical, in multiple colors, black and white, grayscale,etc. The data may be displayed using graphs (e.g., pie charts, bargraphs, line graphs, picture graphs, etc.), or other graphicalrepresentations. Furthermore, the graphical representations may bedisplayed in two or three dimensions.

At process block 1004, the cells within the table may be arranged incolumns and/or rows which can be used to graphically display the data.In one embodiment, the columns and/or the rows may be arranged in aparent-child hierarchy (process block 1006). For example, a parent rowmay have multiple child rows which are arranged subordinately to theparent row. The child rows may be arranged as the rows directly belowthe parent row. In one embodiment, the child rows may be indented fromthe parent row or, alternatively, the child rows may becolor-coordinated differently from the parent row. The child rows mayalso be configured to be folded or rolled into the parent row using, forexample, using a plus/minus icon.

In a further embodiment, any parent row/column may also be a child toanother column/row, as well as any child column/row may be a parentcolumn/row. As such, a complete hierarchy of columns/rows may beconstructed using the table and the cells.

At process block 1008, the value of parent rows/columns may be displayedas an aggregation of the associated child rows/columns. For example, aparent row may have three child rows below it in the hierarchy.Furthermore, each of the children have a data value of one, five, andten, respectively. Hence, depending on the aggregation function (e.g.,sum, average, mean, medium, maximum, minimum, etc.) used, the parent rowwould be an aggregation of the three child rows. For example, if a sumaggregation function was used, then the parent of the three childrenwould have the value of sixteen (i.e., one plus five plus ten).Alternatively, if an average function was used for aggregation, then theparent row would have the value of 5.3. Accordingly, depending on theaggregation function used, the parent row's value would change. Itshould be noted that many more child rows may be included and anyappropriate aggregation function may be used.

In a further embodiment, each child row may be an aggregation of childrows below (in other words the child row may be a parent row as well).Furthermore, each child row may use a different aggregation function aswell as each level of the hierarchy may also use a different aggregationfunction (process block 1010). For example, assuming there are fivelevels of the hierarchy (nonetheless, more or less hierarchy levels maybe used), each level may be aggregated using a different aggregationfunction (i.e., the first level using a summing function, the secondlevel using an average function, and so forth). Such that theaggregation function used for each child, parent, or level of thehierarchy may be completely customizable.

In an alternative embodiment, the aggregation may be computed“on-the-fly.” In other words, as the data is being displayed on thedisplay device, the aggregation for each row or column may be calculatedand then displayed. For example, a set of low-level data may initiallybe supplied to the aggregation function and then, based on the datareceived for each cell, further computations may be performed.Alternatively, the data may be aggregated using completely pre-defineddata sets, such that for each cell, the aggregation computations havebeen done prior to displaying (e.g., OLAP, data cube model, etc.).

In a further embodiment, a user or administrator may be presented with aconfiguration menu which allows the user to set aggregation options forthe table. For example, the user may be able to define the aggregationfunctions used for each row or column in the table, for each parent andchild in the table, as well as each level of the hierarchy. With eachlevel of the hierarchy being defined by a different aggregationfunction, the top level may use a mean function, the next level may usean average function, then a medium function, and so forth. Accordingly,at any location within the table, for any cell, row, or column, and anylevel of the hierarchy, the aggregation function may be defined and maybe different from any other location within the table. In other words,the aggregation functions used may produce a type of heterogeneousaggregation of the hierarchy using different aggregation functionsthroughout the hierarchy.

Referring now to FIG. 11 which illustrates a method of graphicallydisplaying aggregated hierarchical parent-child data, according to afurther embodiment of the present invention. At process block 1102, thecells of the child rows may be displayed with a graphical representationassociated with each cell. For example, the graphical representation maybe in the form of a bar chart, a pie chart, a line graph, a picturechart, etc.

Furthermore, the graphical representation may be displayed on a relativebasis. For example, if the graphical representation is a bar chart, thenthe each level in the hierarchy may be represented with a differentlength bar chart depending on the value within the row or column. Assuch, the length of the bar for each child may be displayed relative to,for example, the parent. Alternatively, the scale of the bars may bedisplayed relative to an absolute value or a set value (e.g., 100,000units, fifteen data points, etc.).

Additionally, scaling may be defined across columns and/or rows. Forexample, the length of a bar in a column may be scaled relative to thelength of all bars in the table, or a select number of bars in thetable, etc. Accordingly, columns A and B may be scaled relative to eachother and columns C and D may be scaled relative to each other such thatthe two scalings for columns A and B are different from the scaling forC and D. Furthermore, the scaling may be related to the aggregationfunction used. For example, an average aggregation may use an averagescaling, while a summing function may use an absolute scaling.Nonetheless, any combination of scaling, aggregation, or both may beused.

At process block 1104, a visual correlation between the graphicalrepresentation of the parent rows and the child rows may be provided.For example, the parent's graphical representation may be dependent onthe child rows associated with the parent. Additionally, each childrow's graphical representation may be dependent on other child TOWS.

At process block 1106, a parent (or child) row may be subdivided inorder to display multiple levels of the hierarchy. For example, a parentrow may be divided into two halves, with one half displaying theparent's data and the other half displaying the child row's data. Thechild row's data may be an aggregation of all of the children, oralternatively each individual child row's data may be displayed.Alternatively, a subset of the child may be displayed, or an aggregationof a subset of the children may be displayed. Furthermore, thesubdivided display may be on a rolling basis, such that each rowdisplays its own data as well as the child row immediately below it inthe hierarchy.

In a further embodiment, the cells may be represented in multipledimensions. For example, the parent row can be represented as beingdisplayed “into” the screen, while the child rows are displayed as“coming out” of the screen, or vice versa. Alternatively, the parentsand children may be represented in three-dimensions, such that anyparent-child combination may be represented three-dimensionally havingthe parent and children each in a different dimension of the screen.

At process block 1108, the non-character and non-numerical graphicalrepresentation of the data in the cells of the first row to a numericalrepresentation of the data is changed.

In further embodiments, parent and child levels of the hierarchy may berepresented by indented bars on the screen. For example, the parent'sbar may be left justified while the child bars are progressivelyindented to the right of the screen. The parents and children may berepresented by different colors, different graphical representations,etc. Ultimately, the parent and child rows may be dynamicallyrepresented based on their level within the hierarchy.

In the foregoing description, for the purposes of illustration, methodswere described in a particular order. It should be appreciated that inalternate embodiments, the methods may be performed in a different orderthan that described. Additionally, the methods may include fewer,additional, or different blocks than those described. The methods may beperformed by hardware components or may be embodied in sequences ofmachine-executable instructions, which may be used to cause a machine,such as a general-purpose or special-purpose processor or logic circuitsprogrammed with the instructions to perform the methods. Thesemachine-executable instructions may be stored on one or more machinereadable mediums, such as CD-ROMs or other type of optical disks, floppydiskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flashmemory, or other types of machine-readable mediums suitable for storingelectronic instructions. Alternatively, the methods may be performed bya combination of hardware and software.

While illustrative and presently preferred embodiments of the inventionhave been described in detail herein, it is to be understood that theinventive concepts may be otherwise variously embodied and employed, andthat the appended claims are intended to be construed to include suchvariations, except as limited by the prior art.

What is claimed is:
 1. A method of displaying graphical representationsof multiply-dimensioned data, the method comprising: displayingmultiply-dimensioned data in a table format, the table format comprisinga plurality of cells arranged in a plurality of rows and a plurality ofcolumns, one or more cells of the plurality of cells being capable ofdisplaying data graphically, and a column of the plurality of columnshaving at least two hierarchical levels, the at least two hierarchicallevels comprising a parent hierarchical level and a child hierarchicallevel; displaying in each cell of one or more cells of the plurality ofcells of the child rows, wherein the non-character and non-numericalgraphical representation of the data is associated with the cell;providing, using a processor, a visual correlation within the pluralityof cells between the display of the non-character and non-numericalgraphical representation of the data of the parent row and the displayof the non-character and non-numerical graphical representation of thedata of the child rows; and changing the non-character and non-numericalgraphical representation of the data in the cells of the first row to anumerical representation of the data.
 2. The method of claim 1, whereinone or more aggregation functions comprise at least one or more of thefollowing: a sum function, an average function, a mean function, amedian function, a maximum function, a minimum function, and astatistical function based on data distribution of one or more columnsin the table.
 3. The method of claim 2, wherein the at least one of thechild rows utilizes the average function for aggregation and the atleast one parent row utilizes the sum function for aggregation.
 4. Themethod of claim 2, further comprising: dynamically selecting theaggregation function for each row based at least in part on one or moreof the following: the level of the row in the hierarchy, a number ofchild rows associated with the row, a number of parent rows above thechild row in the hierarchy, and the row's numeric value.
 5. The methodof claim 2, further comprising providing a user with an interfaceconfigured to receive input, wherein the input defines the aggregationfunction for each row.
 6. The method of claim 1, wherein the graphicalrepresentation comprises one or more of the following: a line graph, ahistogram, and a picture chart.
 7. The method of claim 6, wherein thedisplaying the graphical representation from at least one child differsfrom the displaying of the graphical representation of at least oneparent.
 8. The method of claim 2, wherein the aggregation of the data isperformed simultaneously with the providing of the visual correlation.9. The method of claim 2, wherein the aggregation of the data isperformed using pre-defined aggregation computations computed prior tothe providing of the visual correlation.
 10. The method of claim 2,further comprising scaling the graphical representation of the data foreach of the plurality of rows.
 11. The method of claim 10, wherein thescaling comprises one or more of the following scaling functions:absolute scaling, set width scaling, scaling relative to child andparent rows associated with the row, and cross column scaling.
 12. Themethod of claim 11, wherein the scaling of the graphical representationof the data for at least one child row differs from the scaling of atleast one parent row.
 13. The method of claim 11, wherein a scalingfunction selected for a row is based at least in part on an aggregationfunction used for the row.
 14. The method of claim 1, wherein thegraphical representation for a row represents the row and at least onechild row or parent row.
 15. The method of claim 1, further comprising:detecting an activation of a mechanism associated with the plurality ofrows, the plurality of rows having cell data in a column at the parenthierarchical level; and displaying one or more of the plurality of rowshaving data in the column at the child hierarchical level, the data atthe child hierarchical level sharing at least one data dimension withthe cell data.
 16. A non-transitory machine-readable medium having setsof instructions stored thereon which, when executed by a machine, causethe machine to: display multiply-dimensioned data in a table format, thetable format comprising a plurality of cells arranged in a plurality ofrows and a plurality of columns, one or more cells of the plurality ofcells being capable of displaying data graphically, and a column of theplurality of columns having at least two hierarchical levels, the atleast two hierarchical levels comprising a parent hierarchical level anda child hierarchical level; display in each cell of one or more cells ofthe plurality of cells of the child rows, wherein the non-character andnon-numerical graphical representation of the data is associated withthe cell; provide a visual correlation within the plurality of cellsbetween the display of the non-character and non-numerical graphicalrepresentation of the data of the parent row and the display of thenon-character and non-numerical graphical representation of the data ofthe child rows; and change the non-character and non-numerical graphicalrepresentation of the data in the cells of the first row to a numericalrepresentation of the data.
 17. The non-transitory machine-readablemedium of claim 16, wherein one or more aggregation functions compriseat least one or more of the following: a sum function, an averagefunction, a mean function, a medium function, a maximum function, and aminimum function.
 18. The non-transitory machine-readable medium ofclaim 17, wherein the at least one of the child rows utilizes theaverage function for aggregation and the at least one parent rowutilizes the sum function for aggregation.
 19. A system for displayinggraphical representations of multiply-dimensioned data, the methodcomprising: a memory device; and a processor in communication with thememory device, wherein the memory device includes sets of instructionstored thereon which, when executed vy the processor, cause theprocessor to: display multiply-dimensioned data in a table format, thetable format comprising a plurality of cells arranged in a plurality ofrows and a plurality of columns, one or more cells of the plurality ofcells being capable of displaying data graphically, and a column of theplurality of columns having at least two hierarchical levels, the atleast two hierarchical levels comprising a parent hierarchical level anda child hierarchical level; display in each cell of one or more cells ofthe plurality of cells of the child rows, wherein the non-character andnon-numerical graphical representation of the data is associated withthe cell; provide a visual correlation within the plurality of cellsbetween the display of the non-character and non-numerical graphicalrepresentation of the data of the parent row and the display of thenon-character and non-numerical graphical representation of the data ofthe child rows; and change the non-character and non-numerical graphicalrepresentation of the data in the cells of the first row to a numericalrepresentation of the data.
 20. The system of claim 19, wherein, whereinthe graphical representation for a row represents the row and at leastone child row or parent row.